iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
0

》生命週期
除了前一天新增的基本設定外,這次我們要來看看 life cycle 有哪些可以使用,且用在什麼時機
init:初始化
preload:加載素材(圖片、聲音等)
create:會在 preload 加載所有素材後執行,創建物件
update:後續一直執行來處理畫面

》遊戲坐標系
遊戲座標(0,0),從左上開始計算
橫為X軸:往右為正
豎為Y軸:往下為正

》背景長相
https://ithelp.ithome.com.tw/upload/images/20181018/20111617xIzNi4jKB4.png

》Javascript 內容
生命週期_初始

scene.init = function() {
    console.log('init')
}

生命週期_加載素材

scene.preload = function() {
    this.load.image('bg', 'assets/bg.png')  		    //「bg」當作一個標籤
    this.load.image('player', 'assets/player.png')		//「player」當作一個標籤
}

生命週期_創建物件

scene.create = function(){
    this.add.sprite(0, 0, 'bg')				// 把「bg」放在座標 (0, 0) 的位置
}

接著可以看畫面,查看「bg」載入的狀況。會發現圖片會在座標左上角的部分,這是正常的,不過這不是我們要的樣子,它應該會是要在中間的位置。

scene.create = function(){
    let bg = this.add.sprite(0, 0, 'bg')

    // 方法 1 ) 把圖片的中心點設為 (0,0) 左上角
    bg.setOrigin(0,0)			

    // 方法 2 ) 抓取原本設定的 config
    let width = this.sys.game.config.width	    // 取得 config 的 width : 640
    let height = this.sys.game.config.height	// 取得 config 的 width : 320
    bg.setPosition(width / 2, height / 2)		// 也就是 this.add.sprite(320, 160, 'bg')
}

生命週期_更新畫面

scene.update = function(){
      console.log('update')
}

》結論
今天主要認識 Phaser 提供的生命週期有哪些,可以 console 來看看它執行的順序為何;另外一點的是畫面的座標是從左上點 (0, 0) 位置開始。


今天就先到這裡,我們明天見。


上一篇
Day 2:基本環境設定
下一篇
Day 4:基本變形
系列文
Phaser 幫我撐個 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
edu1218
iT邦新手 5 級 ‧ 2018-11-13 06:35:49

請問你在寫js時vs有提供phaser的intellisense嗎?

我要留言

立即登入留言